package com.ht.api.db.remote;

import com.fasterxml.jackson.annotation.JsonIgnore;

import lombok.Data;

/**
 * 三方接口调用频率限制
 * @author asq
 * @createTime 2024年12月16日 11:04:15
 */
@Data
public class RateLimit {
	/** 接口路径 */
	@JsonIgnore
	private String url;
	/** 访问频率的时间跨度（秒） */
	@JsonIgnore
	private long time;
	/** 最大访问频率 */
	private int max;
	/** 当前访问频率 */
	private int cur;
	/** 访问频率的名称 */
	private String name;
	
	/**
	 * 获取本对象在缓存中的key
	 * @return
	 */
	public String getCacheKey() {
		return String.format("%s:%s", url, time);
	}
	
	/**
	 * 是否已达到阈值
	 * @return
	 */
	public boolean isFull() {
		return cur >= max;
	}
}
